<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        padding: 0;
        margin: 0;
      }

      body {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100vw;
        height: 100vh;
      }

      main {
        width: 400px;
        flex-direction: column;
        position: relative;
        margin-right: 20px;
      }

      main nav {
        display: flex;
        height: 50px;
        align-items: center;
      }

      main nav a {
        background: #95a5a6;
        margin-right: px;
        padding: 10px 20px;
        border: solid 1px #333;
        color: #fff;
        text-decoration: none;
      }

      main nav a:first-of-type {
        background: #e67e22;
      }

      section {
        height: 200px;
        width: 100%;
        background: #f1c40f;
        position: absolute;
        font-size: 5em;
        display: none;
      }

      .hd-tab section:first-of-type {
        display: block;
      }

      section:nth-child(even) {
        background: #27ae60;
      }
    </style>
  </head>
  <body>
    <main class="tab1">
      <nav>
        <a href="javascript:;">后盾人</a>
        <a href="javascript:;">hdcms</a>
      </nav>
      <section>1</section>
      <section>2</section>
    </main>
    <main class="tab2">
      <nav>
        <a href="javascript:;">后盾人</a>
        <a href="javascript:;">hdcms</a>
      </nav>
      <section>1</section>
      <section>2</section>
    </main>
    <script>
      function extend(sub, sup) {
        sub.prototype = Object.create(sup.prototype);
        sub.prototype.constructor = sub;
      }
      function Amination() {}
      Animation.prototype.show = function () {
        this.style.display = 'block';
      };
      Animation.prototype.hide = function () {
        this.style.display = 'none';
      };
      Animation.prototype.background = function (color) {
        this.style.background = color;
      };

      function Tab(tab) {
        this.tab = tab;
        this.links = null;
        this.sections = null;
      }

      extend(Tab, Animation);
      Tab.prototype.run = function () {
        this.links = this.tab.querySelectorAll('a');
        this.sections = this.tab.querySelectorAll('section');
        this.hideEvent();
        this.action(0);
      };
      Tab.prototype.hideEvent = function () {
        this.links.forEach((el, i) => {
          el.addEventListener('click', () => {
            this.reset();
            this.action(i);
          });
        });
      };
      Tab.prototype.action = function (i) {
        this.background.call(this.links[i], 'red');
        this.show.call(this.sections[i]);
      };
      Tab.prototype.reset = function () {
        this.links.forEach((el, i) => {
          this.background.call(el, 'green');
          this.hide.call(this.sections[i]);
        });
      };
    </script>
  </body>
</html>
